Re: darwin pgsql patches
От | Peter Bierman |
---|---|
Тема | Re: darwin pgsql patches |
Дата | |
Msg-id | v03130301b64b293e25de@[17.202.21.230] обсуждение исходный текст |
Ответ на | Re: darwin pgsql patches (Peter Eisentraut <peter_e@gmx.net>) |
Ответы |
Re: darwin pgsql patches
(Tom Lane <tgl@sss.pgh.pa.us>)
|
Список | pgsql-patches |
At 11:05 AM -0500 11/29/00, Tom Lane wrote: >Peter Bierman <bierman@apple.com> writes: >> /* placeholder file for a self-test program I plan to write. pmb-001128 */ > >I think there is a semaphore-testing program in the QNX port; have you >looked at that? Yes, and it allowed the user to manually toggle semaphores, but I want to write something that will do more of a full regressionsweep and produce a pass or fail result. (Which might be unnecessary if latest darwin kernels actually implement<sys/sem.h> completely, see below.) >> +#define darwin > >Could we make this symbol __darwin__, or something else a little less >likely to conflict with plain names in the code? (For that matter, >doesn't the compiler predefine some symbol along this line?) Sure. The only symbols darwin gcc defines are: #define __MACH__ 1 #define __NATURAL_ALIGNMENT__ 1 #define __APPLE__ 1 #define __GNUC_MINOR__ 95 #define __ppc__ 1 #define __GNUC__ 2 #define __STDC__ 1 #define __DYNAMIC__ 1 #define __APPLE_CC__ 912 #define __BIG_ENDIAN__ 1 So defining one in PG via configure seems best. At 5:30 PM +0100 11/29/00, Peter Eisentraut wrote: >Peter Bierman writes: > >> Here are patches to CVS top of tree that allow darwin to completely >> build and install. Unfortunately, the sem...() shim does not function >> correctly yet, so it's not stable enough to use. > >We've been through this before. Newer Darwin kernels have semaphore >support, which means that you'll at least have to compensate for that. I >believe we agreed that semaphore support for older kernels would be >available as a patch. Can you point me to an archive of that discussion? I'd love for it to be true. I did the patch on a Mac OS X Public Beta machine, and gave it a quick test on the most recent Mac OS X internal build, butI didn't try it without the shim on the latest build. I'll try that. >> +//#include <sys/sem.h> > >No C++ comments. Good to know. >> -void *pg_dlopen(const char *filename) >> +void *pg_dlopen(char *filename) > >Why? All of the other ports do not use the const. The code is called from the main sourcebase assuming it's not const. I chosethe quicker fix of having the darwin code match the rest of the source instead of trying to push the more correct constdefinition back into the rest of the code. >> +#if defined(darwin) && defined(__ppc__) >> +static void >> +tas_dummy() >> +{ >> + __asm__(" \n\ > >Here the question was why the existing powerpc code doesn't work. There >are only syntax differences. Any idea? I think it has more to do with Apple's forked gcc than anything else. I don't have a LinuxPPC machine to check if addingthe rX syntax there would continue to work. Also, the darwin gcc doesn't create the _tas symbol automatically, so ithas to be declared in the asm routine. >> +#if defined(darwin) >> +#include "../backend/port/darwin/sem.h" >> +#endif > >This doesn't work. There's no guarantee that the source tree is the same >as the build tree. Fair enough, what would be the right way to include this file then? >> 4c6,7 >> < CFLAGS=-O0 >> --- >> > #CFLAGS=-O2 > >No commented out things. Either you take -02 or -O0 or you set CFLAGS to >something else, but it has to be set to something. Ok. I don't see any reason why -O2 shouldn't work, So I'll just pull the line. Thanks for the feedback! I'm doing the port for personal reasons, but I think it will be a great feature if Mac OS X GM workswith PG. -pmb -- bierman@apple.com "4 out of 5 people with the wrong hardware want to run Mac OS X because..." http://www.newertech.com/oscompatibility/osxinfo.html
В списке pgsql-patches по дате отправления: